![]() |
PATH![]() |
![]() ![]() |
A theme-compliant program is either one that uses only standard Mac OS human interface elements (that is, controls, windows, and other elements created from standard definition functions) or one that contains custom interface elements but uses the Appearance Manager to be theme-compliant.
Theme-compliant interface elements automatically coordinate with the rest of the user interface under any theme. An interface element that is not theme-compliant may appear to be visually incongruous or may not provide the same behavior (such as not having smart scrolling features) as a theme-compliant element.
Figure 2-8 shows the same dialog box, before and after being made theme-compliant. Comparing the two dialog boxes, you can see that the theme-compliant version uses the correct background color (gray) for the platinum appearance. Another difference is that the theme-compliant dialog box uses standard system-defined primary group boxes; these group boxes have a beveled look in the platinum appearance and allow you to use a checkbox item for the title of the group box. Finally, the theme-compliant dialog box also makes use of a standard focus ring for the editable text field into which the user may currently type.
Figure 2-8 The same dialog box, before and after being made theme-compliant
The key to making your program theme-compliant is to allow the system to do as much of your interface work for you as is possible. Using the standard, system-defined interface elements is the biggest step you can take toward theme-compliance. However, if your program uses custom interface elements, you must then use the Appearance Manager to adapt these nonstandard elements to the same coordinated look as the rest of the Mac OS. See Case Studies for Making Custom Interface Elements Theme-Compliant for examples of making various custom control elements theme-compliant.
Of course, the specific actions necessary to achieve theme-compliance vary from program to program, so you should use the checklist provided in A Checklist for Creating a Theme-Compliant Program to determine what you need to do to make your program theme-compliant.
The following sections discuss the elements of a theme-compliant user interface in more detail: